Method and apparatus for allocating processor pool resources for handling mobile data connections

ABSTRACT

A method of operating a processor pool having a given maximal processing power, in handling mobile data connections. The method includes connecting a plurality of mobile data connections, which may require up to a total peak processing power which is substantially greater than the given maximal processing power of the processor pool, to the processor pool, and processing data transmitted on at least one of the connected data connections, by the processor pool.

RELATED APPLICATION

The present application is a U.S. national application ofPCT/IL01/00232, filed Mar. 11, 2001.

FIELD OF THE INVENTION

The present invention relates to communication systems and in particularto systems for handling remote access connections.

BACKGROUND OF THE INVENTION

Cellular ground networks are generally formed of a plurality of basetransceiver stations (BTSs) which wirelessly contact mobile unitsserviced by the network. The BTSs are connected in a tree topology to aregional base station controller (BSC) which controls the routing ofcalls in the network. Usually, a single BSC is connected to tens orhundreds of BTSs. The BSC is generally connected to a mobile switchingcenter (MSC) which in turn is connected to other BSCs and to one or morepublic telephone networks. When a call is established with a mobileunit, a channel is generally allocated between the mobile unit and theMSC through a BSC and one or more BTSs, to pass the signals of the callto and from the mobile unit.

Cellular networks can be used to transmit data packets, in addition tophone calls. A protocol for such data transmission is referred to as ageneral packet radio service (GPRS) and is described, for example, in anemerging ETSI draft standard for GSM, GSM 03.60 version 7.4.0 Release1998, the disclosure of which is incorporated herein by reference. Inaccordance with the GPRS, the BSCs are connected to GPRS support nodes(GSNs) which pass the data packets to their destinations on IP networks.For example, the GSNs may serve as gateways to the Internet. In manycases the GSNs are located adjacent to or within respective MSCs.

Generally, mobile data connections are formed between mobile unitsrequesting to transmit and/or receive data and the GSN. The connectionspass partially through over a wireless link between a BTS and the mobileunit and partially on a link connecting the BTS to the GSN. The GSNgenerally includes an array of dedicated ASIC processors which eachhandles a single mobile data connection. The number of ASIC processorspositioned in a GSN is limited by various physical constrains, such asthe space required for the processors and their cost. For each activedata connection, the GSN manages a serving GPRS support node (SGSN)which controls the connection and a gateway GPRS support node (GGSN)which serves as an interface between the mobile network and a packetbased network, i.e., an IP network. The GGSN generally compresses thesignals transmitted to the mobile unit, in order to conserve wirelessbandwidth.

Some service providers use for the channel connecting the GSN to an IPnetwork a link with a bandwidth lower than the total bandwidth of theconnections from the GSN to the mobile units. This is possible becausethe connections between the GSN and the mobile units are not alwaysfully utilized. The size of the link is chosen so that statistically,the chances of the bandwidth actually required by the mobile units isnearly never greater than the links bandwidth.

SUMMARY OF THE INVENTION

An aspect of some embodiments of the present invention relates to a GSNprocessor pool, having a given processing power, which concurrentlyservices a number of mobile data connections which is greater than couldbe handled with the given processing power of the processor pool if eachmobile unit requires its maximal data rate. In some embodiments of theinvention, the number of mobile units which the GSN accepts forconcurrent handling is selected according to statistical estimates, suchthat the actual service required from the processor pool will(statistically) almost never exceed the capabilities of the processorpool.

In some embodiments of the invention, the processing power of theprocessor pool is sufficient to handle an accumulated data ratesubstantially equal to the data rate supported by an IP link connectingthe GSN to an IP network.

Generally, the processor pool executes for each connected mobile unit aprocess which handles the packets of the mobile unit. In someembodiments of the invention, the processor pool has a scheduler whichdynamically transfers the handling of processes between processors ofthe pool according to the load on the processors; The dynamic transferof processes between the processors of the pool allows the use ofstatistical assumptions which relate to the entire pool as a singleentity.

In an embodiment of the invention, when at a specific moment theaccumulated data rate required by the mobile units handled by the GSN isbeyond the capability of the GSN processor pool, one or more low qualityof service (QoS) mobile units are given delayed service. Alternativelyor additionally, the limited service is distributed between the mobileunits, such that each mobile unit suffers only from a slight decrease inservice.

An aspect of some embodiments of the invention relates to a GSNprocessor pool which keeps track of the time during which data was nottransmitted on the data channels it handles. If data is not transmittedon a channel for a predetermined time the compression history of theprocess is erased and/or the process is removed from the processor pool.Thus, the number of processes handled by the processor pool is enhancedwhile the memory utilization is reduced.

There is therefore provided in accordance with an embodiment of thepresent invention, a method of operating a processor pool having a givenmaximal processing power, in handling mobile data connections,comprising connecting a plurality of mobile data connections, which mayrequire up to a total peak processing power which is substantiallygreater than the given maximal processing power of the processor pool,to the processor pool, and processing data transmitted on at least oneof the connected data connections, by the processor pool.

Optionally, processing data transmitted on the at least one of theconnections comprises processing data of a single connection by aplurality of the processors in the processor pool. In some embodimentsof the invention, processing data of a single connection by a pluralityof the processors in the processor pool comprises processing datatransmitted on the single connection by the plurality of processors,substantially concurrently. Optionally, processing data of a singleconnection by a plurality of the processors in the processor poolcomprises processing data transmitted on the connection in a firstdirection by a first processor and data transmitted in a seconddirection by a second processor. Alternatively or additionally,processing data of a single connection by a plurality of the processorsin the processor pool comprises processing data transmitted on thesingle connection by a plurality of processors, one after the other.Optionally, connecting the plurality of data connections comprisesassigning each connection a processor to handle the data of theconnection.

The method optionally includes changing, for at least one of theconnections, the processor assigned to handle the connection.Optionally, changing, the processor assigned to handle the connectioncomprises changing the processor assigned to handle the connection whilethe connection is transferring data. In some embodiments of theinvention, changing the processor assigned to handle the connectioncomprises changing substantially immediately after data of theconnection is handled. The method optionally includes processing thedata of the connection substantially immediately after the connection istransferred. Possibly, changing the processor assigned to handle theconnection comprises changing the processor assigned to handle theconnection, while the connection is idle. The method optionally includeskeeping track of the processing load on each of the processors andtransferring the handling of a connection from a first processor to asecond processor responsive to the relative loads on the first andsecond processors. Optionally, keeping track of the processing loadcomprises keeping track of the amount of data waiting, in an inputbuffer, for handling by the processor and/or receiving indications fromthe processors.

Optionally, connecting the plurality of data connections comprisesconnecting data connections which may require up to a total peakprocessing power at least five times greater than the given maximalprocessing power of the processor pool.

In some embodiments of the invention, connecting the plurality of dataconnections comprises connecting a plurality of data connections whichhave the same peak processing power requirement level. Alternatively oradditionally, connecting the plurality of data connections comprisesconnecting a plurality of data connections which have different peakprocessing power requirement levels. Optionally, processing datatransmitted on at least one of the connected data connections comprisescompressing signals transmitted on the at least one of the dataconnections. Optionally, processing data transmitted on at least one ofthe connected data connections comprises decompressing signalstransmitted on the at least one of the data connections. Optionally,processing data transmitted on at least one of the connected dataconnections comprises compressing and decompressing signals transmittedon a first group of data connections and only compressing signals on asecond group of data connections. Alternatively or additionally,processing data transmitted on at least one of the connected dataconnections comprises processing by at least one processor which handlesdata of a plurality of connections. The method optionally includeserasing a state record of connections which did not carry data for overa predetermined period. The method optionally includes disconnectingconnections which did not carry data for over a predetermined period.

Optionally, connecting the plurality of mobile data connectionscomprises connecting general purpose radio service (GPRS) connections.

There is further provided in accordance with an embodiment of thepresent invention, a method of determining whether to accept a candidatemobile data connection for handling by a processor pool, comprisingdefining a threshold level indicative of a processing power levelsubstantially greater than the processing power of the processing pool,determining a value of a parameter indicative of the peak processingpower which may be required in handling the candidate mobile dataconnection, calculating a value of a parameter indicative of a totalpeak processing power which would be required in handling all theconnections handled by the processor pool at their respective peakprocessing powers if the candidate connection is accepted, and acceptingthe candidate connection if the value of the calculated parameter islower than the threshold level:

Optionally, determining the value of the parameter which is indicativeof the peak processing power comprises determining whether the candidateconnection requires compression in one direction or in two directionsand/or determining a peak data rate of the connection. Optionally, theparameter comprises the number of connections handled by the processorpool. The method optionally includes accepting the candidate connectionat a low quality of service status if the value of the calculatedparameter is greater than a first threshold level but is lower than asecond threshold level.

Optionally, defining the threshold level comprises defining a thresholdlevel which changes periodically. Optionally, the threshold levelchanges responsive to the time or date. Alternatively or additionally,the threshold level is changed responsive to a command from a humanoperator and/or to a traffic load in a network including the processorpool.

There is further provided in accordance with an embodiment of thepresent invention, a processor pool for servicing mobile dataconnections, comprising a plurality of processors each of which handlesone or more mobile data connections, and a scheduler which dynamicallyschedules the mobile data connections handled by each of the processors.

Optionally, the scheduler transfers the handling of a data connectionfrom a first processor to a second processor if the first processor hasa large backup of accumulated data for processing relative to the secondprocessor.

The processor pool optionally includes a common memory which includes arecord for each of the data connections serviced by the processor pool.Optionally, the common memory is accessible by all the processors of theprocessor pool. Optionally, each of the data connections handled by theprocessor pool has a maximal data rate at which it may carry data andwherein the combined processing power of all the processors of theprocessor pool is substantially lower than the processing power requiredto handle all the data connections handled by the processor pool whenthey all carry data at their respective maximal data rates.

Optionally, connections of a first type are connected to a processorfrom a first group of the processors and connections of a second typeare connected to a processor from a second group of the processors,different from the first group. Optionally, the first and second groupsdo not include common processors. Alternatively, the first and secondgroups include at least one common processor. In some embodiments of theinvention, each mobile data connection is assigned a buffer of a sizesufficient to store data received at the maximal rate of the connectionfor at least 10 seconds. Optionally, at least two of the connectionshave buffers of different sizes. Optionally, the size of the buffer ofeach connection is chosen responsive to the QoS of the connection.

There is further provided in accordance with an embodiment of thepresent invention, a method of servicing a mobile data connection by aprocessor pool including a plurality of processors, comprising handlingthe mobile data connection by a first processor, transferring thehandling of the data connection to a second processor while the dataconnection is in force, and handling the data of the mobile dataconnection by the second processor.

In some embodiments of the invention, transferring the handling of thedata connection is performed responsive to an increase in the processingpower required for handling the data connection. Optionally,transferring the handling of the data connection is performed responsiveto an increase in the processing power required by a different dataconnection serviced by the first processor. Optionally, transferring thehandling of the data comprises transferring the connection while data isbeing received on the connection. Alternatively or additionally,transferring the handling of the data comprises transferring theconnection while the connection is idle. Optionally, handling the mobiledata connection comprises compressing and decompressing data transmittedon the connection.

BRIEF DESCRIPTION OF FIGURES

Exemplary non-limiting embodiments of the invention will be describedwith reference to the following description of embodiments inconjunction with the figures. Identical structures, elements or partswhich appear in more than one figure are preferably labeled with a sameor similar number in all the figures in which they appear, in which:

FIG. 1 is a simplified schematic block diagram of a mobile networkincluding a GPRS support node (GSN), in accordance with some embodimentsof the present invention;

FIG. 2 is a schematic block diagram of a processor pool, in accordancewith some embodiments of the present invention;

FIG. 3 is a flowchart of the acts performed in transferring the handlingof a mobile unit between processors, in accordance with some embodimentsof the present invention; and

FIG. 4 a flowchart of the acts performed by a GSN in determining whetherto accept a request from a mobile unit to establish a data connection,in accordance with some embodiments of the present invention.

DETAILED DESCRIPTION OF EMBODIMENTS

FIG. 1 is a simplified schematic block diagram of a mobile network 20,in accordance with an embodiment of the present invention. Mobilenetwork 20 comprises a plurality of base transmission stations (BTSs) 24which service mobile units 26 in their region. BTSs 24 are connectedthrough cable or wireless links to base station controllers (BSCs) 28which in turn connect to a mobile switching center (MSC) 32.

Some of mobile units 26 comprise GPRS units 36 which are used totransmit and receive data packets. Generally, GPRS units 36 receive datapackets in a compressed format, which is used in order to conservewireless bandwidth. In some cases, GPRS units 36 also transmit data in acompressed format, while in other cases the transmitted data is notcompressed. In some embodiments of the invention, mobile units 26comprise standard WAP-supporting telephone units and do not require anyspecial apparatus in order to operate in accordance with the presentinvention.

Network 20 comprises a GPRS support node (GSN) 22 which serves as aninterface between mobile units 26 and a packet based network (e.g., anIP network 34). In some embodiments of the invention, BSCs 28 areconnected directly to GSN 22. Alternatively or additionally, BSCs 28connect to GSN 22 through MSC 32.

When a user of a mobile unit 26 wishes to connect to IP network 34, themobile unit 26 generates an appropriate request. If the request isgranted a data connection is allocated between the mobile unit 26 andGSN 22.

In some embodiments of the invention, GSN 22 comprises a processor pool30 which runs software modules which interface between mobile network 20and IP network 34. Optionally, processor pool 30 compresses signalstransmitted to mobile units 26 and/or decompresses signals received frommobile units 26. The compression and/or decompression may be performedaccording to substantially any suitable compression method, for exampleone or more of the methods described in the V.42 and/or V.44 ITUrecommendations. The compression may include the data portion of thereceived packet without one or more of its headers or may include theentire packet including the headers. It is noted that the compression ofa single packet may depend on the contents of previous packetstransmitted on the same connection.

FIG. 2 is a schematic block diagram of processor pool 30, in accordancewith an embodiment of the present invention. Processor pool 30 comprisesa plurality of separate hardware processors 82 (marked 82A, 82B, etc.),which handle the data signals transmitted on the connections to mobileunits 26.

In some embodiments of the invention, each mobile unit 26 currentlyserviced by processor 30 has a respective process 40 which handles thedata transmitted on the connection to the mobile unit (e.g., compressesand/or decompresses the data). Alternatively, each mobile unit 26 has apair of processes, one for data transmitted to the mobile unit 26 andone for data received from the mobile unit. Alternatively, the number ofprocesses for each mobile unit 26 depends on the service provided to themobile unit. For example, each mobile unit 26 may have a process foreach direction in which compression is performed, e.g., one process ifsignals are compressed only in one direction and two processes ifsignals are transmitted in both directions. Optionally, mobile units 26for which signals are not compressed at all, do not have a process 40.Alternatively, such mobile units have a process which perform othertasks.

In some embodiments of the invention, processor pool 30 includes acommon memory 86 in which each process 40 has a respective storage area45 which stores data related to the process. Each storage area 45optionally includes a state record 42 which stores state information ofthe process, e.g., a compression dictionary. In addition, storage area45 optionally includes an input buffer 41 which stores packets waitingfor processing by the respective process and/or an output buffer 44 inwhich packets handled by the process 40 are placed for transmission totheir destination. In some embodiments of the invention, each storagearea 45 of a process 40 stores substantially all the informationrequired by a processor 82 in order to handle the respective mobile unit26. Thus, a processor 82 assigned to handle a mobile unit 26 does notneed any information other than that found in the respective area 45 incommon memory 86.

Alternatively to having a single input buffer 41 for each process 40,each process 40 which handles data in both directions of the connectionhas separate input buffers for each of the directions. Optionally, inthis alternative, the processes 40 take data from the input buffers inan alternate order to provide substantially even handling to the dataflowing in both directions. Alternatively, precedence is given to dataflowing in one of the directions, e.g., from IP network 34 to mobileunit 26.

Generally, using current technology, each processor 82 can handle dataof between about 4-10 connections. It is noted, however, that processors82 which can handle any number of processes, particularly with theadvance of technology, may be included in processor pool 30.

Generally, processor pool 30 has a given processing power which is thesum of the processing power of processors 82. Each mobile unit 26, whichhas a data connection currently handled by processor pool 30, utilizesan amount of processing power of processor pool 30. The utilizedprocessing power is measured, for example, as a percentage of the givenprocessing power of processor pool 30 or in millions of instructions persecond (PS). The processing power utilized by each data connection isgenerally a function of the amount of data actually transmitted on theconnection.

In some embodiments of the invention, network 20 allocates a number ofdata connections which, at a peak rate, may carry much more data thancan be handled with the processing power of processor pool 30.Optionally, the allocated data connections may carry, at a peak rate,data whose handling requires two, five or even ten times the processingpower of processor pool 30. The number of allocated data connections,however, is generally chosen such that the actual service required fromprocessor pool 30 will (statistically) almost never exceed thecapabilities of the processor pool. Alternatively, higher over-bookingrates are used taking into account the more frequent chances ofoccurrence of a degradation in service. In some embodiments of theinvention, an operator of GSN 22 can control the over-booking rate. Itis noted that requests to connect when the GSN 22 is at its maximalutilization are rejected or are responded to with offers to receive alow quality of service (QoS) connection, as described below.

In some embodiments of the invention, the given processing power ofprocessor pool 30 is related to the bandwidth of the link connecting GSN22 to IP network 34, such that the processing power of processor pool 30is substantially equal to the processing power required to handle thesignals passing on the link connecting to IP network 34.

Processor pool 30 optionally includes a scheduler 84 which dynamicallyassigns processes 40 to respective processors 82. In some embodiments ofthe invention, scheduler 84 assigns processes 40 of newly acceptedmobile units 26 to respective processors 82 and in addition transfersthe handling of one or more processes 40 between processors 82, ifnecessary.

Each processor 82 has processing power for handling maximal data ratesof a predetermined number of connections, concurrently. In order toincrease the number of connections handled, each processor 82 handles anumber of connections larger than for which it has processing power forhandling maximal data rates, under the assumption that not allconnections carry data concurrently. Allowing dynamic transfer ofprocesses 40 between processors 82 makes processor pool 30 act as asingle processor for statistical assumptions. That is, if at a specificmoment all the connections of a specific processor 82 require datahandling concurrently, some of the connections may be transferred toother processors 82 which are not as loaded. Thus, the margins requiredfor peak usage times are calculated for processor pool 30 together,rather than separately for each processor 82.

Scheduler 84 optionally keeps track of the load on each of processors 82and accordingly distributes the handling of the processes 40 betweenprocessors 82. In some embodiments of the invention, scheduler 84 keepstrack of the amount of data waiting for processing by each of processors82. Optionally, when one of processors 82 has a relatively large amountof data waiting for processing and one or more other processors 82 havea relatively small amount of data waiting for processing, the handlingof one or more data connections is transferred from the loaded processor82 to the one or more relatively free processors 82. Optionally, theconnection is transferred while it is carrying data as described belowwith reference to FIG. 3. Alternatively or additionally, scheduler 84transfers, when possible, connections which are not currently carryingdata. Thus, the transfer cannot interfere with the transfer of data onthe connection.

Alternatively or additionally, scheduler 84 distributes the handling ofthe data connections between processors 82 such that each processor 82handles about the same number of data connections and/or dataconnections with substantially the same peak processing powerrequirements. Further alternatively or additionally, scheduler 84receives from processors 82 indications on the load of the processors.The indications mat be received periodically and/or when the load goesabove or below a predetermined threshold.

In some embodiments of the invention, when the load on a processor 82goes above a predetermined threshold, e.g., 80%, some of the idleconnections handled by the processor are transferred to otherprocessors, in order to minimize the chances that a transfer of aconnection carrying data will be required.

In some embodiments of the invention, the determination of the handlingof which mobile unit 26 is to be transferred, is performed as describedin PCT application PCT/IL00/00703 the disclosure of which document isincorporated herein by reference.

In some embodiments of the invention, the distribution of processes 40between processors 82 depends on the QoS of the respective connectionsof the processes 40. Optionally, high QoS connections are distributedevenly between processors 82. Alternatively or additionally, one or morespecific processors are used for high QoS connections. Furtheralternatively or additionally, scheduler 84 assumes higherprocessing-power consumption for high QoS connections, in distributingprocesses 40 between processors 82.

In some embodiments of the invention, processors 82 are divided intogroups which handle data connections of different types. For example,one group of processors 82 may handle data connections which carrycompressed signals in only one direction while a second group ofprocessors 82 handles data connections which carry compressed signals inboth directions. Alternatively, other methods for assigning theconnections to processors 82, are used. By assigning each processor 82only connections of a single type and/or which have common averageprocessing requirements, the internal scheduling of processes within theprocessors 82 is simplified. In addition, having each processor 82handle only connections of a single type simplifies the schedulingperformed by scheduler 84.

Scheduler 84 optionally notifies each of processors 82, which processes40 it is to handle and/or the addresses of the respective areas 45 incommon memory 86. In some embodiments of the invention, scheduler 84periodically notifies each of processors 82 which mobile units 26 it isto handle. Alternatively or additionally, when a new connection isaccepted, scheduler 84 instructs one of processors 82 to handle theconnection. In addition, when the handling of a mobile unit 26 istransferred from one processor 82 to another, scheduler 84 notifies therelevant processors 82. Optionally, scheduler 84 passes its instructionsthrough common memory. 86. Alternatively, scheduler 84 is connected toprocessors 82 and passes them its instructions directly.

In some embodiments of the invention, each processor 82 runs a scheduler48 which assigns processing sessions to processes 40 currently assignedto the processor, according to predetermined scheduling rules. In someembodiments of the invention, scheduler 48 assigns processing sessionsof a predetermined length to processes 40, cyclically according to apredetermined order. Alternatively or additionally, the scheduling orderdepends on the amount of data in the respective input buffers 41 of theprocesses. Optionally, processes 40 which do not have any packets whichrequire handling, forego the processing session, i.e., returnimmediately. Alternatively, processes 40 which in a specific schedulingcycle have an empty buffer 41 do not receive from scheduler 48 aprocessing session in that cycle. Alternatively or additionally, anyother scheduling method is used, such as the methods described in U.S.patent application Ser. No. 09/501,078, “Scheduling in a Remote-AccessServer”, filed on Feb. 9, 2000, U.S. patent application Ser. No.08/969,981 filed Nov. 13, 1997, PCT application PCT/IL00/00132 filedFeb. 8, 2001 and/or in PCT application PCT/IL00/00733 filed Nov. 9,2000, the disclosures of which are incorporated herein by reference.

In some embodiments of the invention, schedulers 48 of processors 82keep track of their load and provide scheduler 84 with indications ontheir load. Scheduler 84 uses the indications from schedulers 48 indetermining the distribution of processes 40 between processors 82.Optionally, schedulers 48 provide scheduler 84 with indications,periodically. Alternatively or additionally, schedulers 48 providescheduler 84 with indications when substantial changes occur.

In some embodiments of the invention, different processes 40 havedifferent quality of service (QoS) levels which determine the precedencein scheduling when a plurality of connections have data accumulated intheir respective buffers 41. Optionally, each processor 82 first handlesdata of connections with high QoS and only when connections which areentitled to high QoS do not have data in their buffers 41, is theprocessor 82 scheduled to handle connections with lower QoS levels.Alternatively, scheduler 48 distributes a predetermined percentage ofthe processing power of processor 82 equally between processes 40 andthe remaining processing power is given, additionally, to high QoSprocesses. It is noted that the order of scheduling is especiallyimportant at times when the data connections handled by GNS 22 carrydata at a rate greater than can be handled by processor pool 30.

In some embodiments of the invention, a network interface 81 receivespackets from packet based network 34 and/or from mobile units 26 andpasses the received packets to a distribution processor 88. Distributionprocessor 88 determines which process 40 is to handle each receivedpacket (according to the connection on which the packet is transmitted)and accordingly places the packet in the respective area 45 of theprocess. Optionally, distribution processor 88 identifies the connectionof a packet according to one or more control fields of the packet, e.g.,fields of IP and/or link layer headers of the packet.

In some embodiments of the invention, scheduler 84 is run on a processorseparate from processors 82 and distribution processor 86.Alternatively, scheduler 84 runs on distribution processor 86 or on oneof processors 82. Alternatively or additionally, the functions ofdistribution processor 86 are performed by one or more of processors 82which operates as a distributor in addition to handling packets of oneor more data connections. Further alternatively or additionally,processor pool 30 includes a pair of distribution processors, one forsignals from mobile units 26 and one for signals from the packet basednetwork.

In some embodiments of the invention, processor pool 30 comprises anoutput driver 89 which passes the contents of output buffers 44 to theirdestination. Output driver 89 may be formed of a single processor ordevice, a plurality of devices and/or may be combined with one or moreof the processors of processor pool 30.

In some embodiments of the invention, each time a processor 82 handles adata connection, it retrieves the respective record of the dataconnection from common memory 86. When the processing is completed, allthe information is stored again in common memory 86 for the next timethe specific client modem 30 is processed. Alternatively, processors 82store the records of the processes they are currently handling in aprivate memory (not shown), and common memory 86 is used, substantiallyonly, for passing received packets to processors 82 and/or when thehandling of a data connection is transferred from one processor 82 toanother.

In some embodiments of the invention, input buffers 41 are sufficientlylarge such that when for a short term more data passes on theconnections than can be handled by processor pool 30, the data is notlost but is accumulated in buffers 41. In some embodiments of theinvention, all of buffers 41 have the same capacity. Alternatively,different buffers 41 have different sizes according to the QoS of therespective data connection. Optionally, connections with high QoS havelarger buffers. Alternatively, connections with high QoS, whichtherefore have less chances of being deprived of service, have smallerbuffers. Further alternatively or additionally, one or more groups ofbuffers 41 are included in a single memory which is dynamicallyallocated to the different connections according to their needs and/orpriorities.

In some embodiments of the invention, the size of buffers 41 is adjustedaccording to statistical measurements, such that the chances of databeing lost due to a large flux of data for a short period is beneath apredetermined likelihood. Optionally, the size of buffers 41 is suchthat a predetermined percentage (e.g., 50%) of the peak usage of all theconnections may be tolerated without loss of data for a predeterminedinterval (e.g., 10 seconds).

Alternatively to each storage area 45 including a separate input buffer41 and/or output buffer 44, common memory 86 comprises a common bufferarea 90 in which all the input and/or output packets are stored. When anew packet is received and stored in common buffer area 90, a pointer tothe stored packet is placed in the respective storage area 45 of theprocess 40 which is to handle the packet.

In some embodiments of the invention, when a process 40 does not receivedata for over a predetermined time, the state record 42 of the processis discarded. When packets are again received by the process 40,compression and/or decompression are performed without the previoushistory. Possibly, process 40 notifies mobile unit 26 that the staterecord 42 was erased at the time it is erased. Alternatively,notification on the erasing is sent when data is again transmitted. Byerasing state record 42 for unused connections, the amount of memory andpower utilized by processes 40 which are not used, is reduced. It isnoted that the usefulness of a compression dictionary reduces with time,such that after a predetermined time, the compression dictionary is ofvery little use.

Alternatively or additionally, when a process 40 is not used for apredetermined time, the process 40 is canceled. In order to againtransmit data, the mobile unit 26 must again establish a connection.Optionally, mobile units whose connection was canceled are givenprecedence in accepting a connection, e.g., are considered as having ahigh QoS, if they request to reconnect within a predetermined time fromthe cancellation of their process 40.

In some embodiments of the invention, the idle time of the connectionsis compared to a plurality of thresholds. If the idle time is longerthan a first threshold, e.g., half a minute, state record 42 is erased.When the idle time passes a second threshold, e.g., 2 minutes, theconnection is canceled.

When a mobile unit 26 requests to establish a data connection, a datachannel is allocated between the mobile unit 26 and GSN 22. Optionally,before allocating the data channel, GSN 22 is consulted to determinewhether processor pool 30 can handle an additional data connection.

FIG. 3 is a flowchart of the actions performed in transferring thehandling of a mobile unit 26 from a first processor 82A to a secondprocessor 82B, in accordance with an embodiment of the presentinvention. When scheduler 84 determines that the handling of aconnection to a particular mobile unit 26 is to be transferred fromprocessor 82A to processor 82B, scheduler 84 instructs (100) processor82A to remove the particular mobile unit 26 from its internal schedulingorder. Processor 82A removes (102) the particular mobile unit 26 fromits scheduling order and notifies (104) scheduler 84 that the removalwas completed.

In some embodiments of the invention, if (106) the particular mobileunit 26 is currently being handled, processor 82A completes (108) thehandling session of the particular mobile unit 26, before it removes(102) the particular mobile unit 26 from its scheduling order.Alternatively, processor 82A waits for a processing session of themobile unit 26 to be reached and the connection is removed (102) fromthe scheduling order immediately after the processing session. Thus, thetime in which the transferred mobile unit 26 is not handled isminimized. It is noted that this waiting for the processing session maydelay the connection transfer by a short period, due to the wait untilthe turn of the mobile unit 26 to be transferred is reached. Furtheralternatively, before removing the particular mobile unit 26 from theinternal order of processor 82A, processor 82A processes a large blockof received packets of the transferred mobile unit 26, out of thescheduling order. Optionally, the out of order processing includes allthe packets currently in the buffer of the transferred mobile unit 26.Alternatively, the out of order processing is performed for apredetermined period which is not long enough to seriously impede theservice to the other mobile units 26 handled by processor 82A.

Thereafter, scheduler 84 instructs (110) processor 82B to add thetransferred mobile unit 26 to its internal scheduling order. In anembodiment of the invention, scheduler 84 supplies processor 82B withthe address in common memory 86 of the record of the transferred mobileunit 26. Alternatively, common memory 86 comprises a table 92 (FIG. 4)which lists the addresses of the records of all the mobile units 26handled by processor pool 30, and processor 82B accesses table 92 todetermine the address of the record of the transferred mobile unit 26.Optionally, processor 82B adds (112) the mobile unit 26 to the end ofits scheduling order to prevent a delay in the handling of a differentmobile unit 26 due to the transfer. Alternatively, processor 82B checkswhere in the scheduling order the transferred mobile unit 26 can beplaced without causing damage to the handling of any of the mobile units26 handled by processor 82B.

FIG. 4 is a flowchart of the acts performed by GSN 22 in determiningwhether to accept a request from a mobile unit 26 to establish a dataconnection, in accordance with an embodiment of the present invention.Optionally, GSN 22 determines (50) the peak processing power which theconnection to be established will require. In some embodiments of theinvention, the peak processing power is determined according to the typeof the connection. For example, some wireless access protocol (WAP)connections require only compression services, as in these connectionssignals sent from mobile units 26 to GSN 22 are not decompressed. Otherconnections, such as video conferencing connections, require bothcompression and decompression. Alternatively or additionally, the peakprocessing power is determined as a function of the maximal bandwidthallocated to the connection. Standard connections, for example, areallocated 115 Kbits/sec and accordingly require a predetermined amountof processing power. In some embodiments of the invention, GSN 22 mayaccept connections of lower or higher levels of bandwidth whichaccordingly require different amounts of processing power.

In some embodiments of the invention, GSN 22 calculates (52) the totalpeak processing power of processor pool 30 if the new connection isaccepted (y). Optionally, GSN 22 stores a variable which keeps track ofthe total peak processing power of the connections currently handled byprocessor pool 30. Calculating (52) the processing power required if thenew connection is accepted is performed by adding the determined (50)peak processing power of the new connection to the stored variable.Keeping track of the total peak processing power optionally includessubtracting from the stored variable the peak processing power which maybe required by connections which were disconnected.

In some embodiments of the invention, GSN 22 compares (56) theprocessing power required if the new connection is accepted to apredetermined peak processing power level (x) which processor pool 30accepts. The predetermined peak processing power level (x) issubstantially greater than the given processing power of processor pool30. In some embodiments of the invention, the predetermined peakprocessing power level (x) is determined based on statistics of theusage patterns of data connections, such that the chances of theconnections handled by processor pool 30 requiring at a specific timemore processing power than the given processing power of the processorpool, is lower than a given value. Optionally, the statistics are of thepercentage of time in which packets are transmitted on the connectionsand/or of the bandwidth utilization of the connections. Generally, thepredetermined peak processing power level per processor (x/number ofprocessors 82) increases with the number of processors 82 included inprocessor pool 30. This is because the variance of the statisticalaverages decreases as the number of processors 82 increases.

In some embodiments of the invention, the predetermined peak processingpower level (x) is at least ten times, or even fifty times, greater thanthe given processing power of processor pool 30, depending on the numberof connections handled by processor pool 30, the quality of service(QoS) promised to the mobile units of the connections and/or the useprofiles of the data connections by the mobile units.

If (56) the peak processing power which may be required if the newconnection is accepted (y) is lower than the predetermined peakprocessing power level (x), the new connection is accepted (58) forhandling. If, however, the peak processing power which may be requiredif the new connection is accepted (y) is greater than the predeterminedpeak processing power level (x), the new connection is refused (60).Alternatively, when the peak processing power required if the newconnection is accepted (y) is greater than the predetermined peakprocessing power level (x), the user of the mobile unit 20 requestingthe new connection is offered a low QoS connection which receivesservice only if processor pool 30 has remaining processing power. If theuser accepts the offer, the new connection is accepted with a low QoSprocess. The low QoS process receives processing sessions only when allregular processes do not require processing sessions. In someembodiments of the invention, processor pool 30 accepts only up to apredetermined number of connections with low QoS processes.Alternatively, processor pool 30 accepts any number of connections withlow QoS processes.

Further alternatively or additionally, when the peak processing powerrequired if the new connection is accepted (y) is greater than thepredetermined peak processing power level (x) but the peak processingpower required by the connections currently handled by processor pool 30is lower than x, the user is offered a low bandwidth connection whichbrings the peak processing power to equal x.

In some embodiments of the invention, the predetermined peak processingpower level (x) is dynamically adjusted according to one or moreexternal parameters, such as the time, date and/or geographical region.For example, during the day time when there are many users thepredetermined peak processing power level (x) is reduced so as to allowmore users to connect, although at a lower rate. Alternatively oradditionally, it may be known that users at certain times of day havelower utilization rates of their connections. The predetermined peakprocessing power level (x) may be adjusted automatically or responsiveto a command from a human operator.

In some embodiments of the invention, the predetermined peak processingpower level (x) is dynamically adjusted responsive to a traffic load ina network including the processor pool. For example, when the network isrelatively loaded, the predetermined peak processing power level (x) maybe lowered to prevent congestion of the network.

In some embodiments of the invention, the decision of whether to accepta new connection depends additionally on the QoS to which the mobileunit 26 requesting the connection is entitled. Optionally, when the peakprocessing power required if the new connection is accepted (y) isgreater than the predetermined peak processing power level (x) by up toa predetermined margin (m) (i.e., y−x<m), connections are allocated onlyto high QoS mobile units 26. Optionally, high QoS mobile units whichreceive connections are mobile units which have a QoS greater than apredetermined percentage (e.g. 50%) of connections currently handled byGSN 22. Alternatively or additionally, the required QoS level is afunction of the size of the difference (y−x). If (y−x) is small,connections with a moderately high QoS are accepted. If, however, (y−x)is close to the predetermined margin (m), only connections with a veryhigh QoS are accepted.

Alternatively to performing the determination of whether to accept a newconnection based on processing power measures, the determination isperformed based on different, substantially equivalent, one or moreparameters which are indicative of the processing power. In someembodiments of the invention, simpler measures are used, for example thenumber of connections and/or the data rates of the connections.

Alternatively or additionally to using a predetermined peak processingpower level (x) in determining whether to accept a connection, thecurrent utilization and/or an average of recent utilization is used indetermining whether to accept the connection. For example, if thecurrent utilization is below a predetermined level, e.g., 30% of theprocessing power of processor pool 30, connections are acceptedregardless of the predetermined peak processing power level (x).

Although the above description relates to handling GPRS dataconnections, it is noted that the some of the principles of the presentinvention may be used in processor pools which perform compressionand/or decompression in other data transfer systems.

It will be appreciated that the above described methods may be varied inmany ways, including, changing the order of steps, and/or performing aplurality of steps concurrently. For example, in FIG. 3, the removal ofa mobile unit from a scheduling order of a first processor and itsaddition to the scheduling order of a second processor may be performedconcurrently. It should also be appreciated that the above describeddescription of methods and apparatus are to be interpreted as includingapparatus for carrying out the methods and methods of using theapparatus. The present invention has been described using non-limitingdetailed descriptions of embodiments thereof that are provided by way ofexample and are not intended to limit the scope of the invention. Itshould be understood that features and/or steps described with respectto one embodiment may be used with other embodiments and that not allembodiments of the invention have all of the features and/or steps shownin a particular figure or described with respect to one of theembodiments. Variations of embodiments described will occur to personsof the art. Furthermore, the terms “comprise,” “include,” “have” andtheir conjugates, shall mean, when used in the claims, “including butnot necessarily limited to.”

It is noted that some of the above described embodiments may describethe best mode contemplated by the inventors and therefore may includestructure, acts or details of structures and acts that may not beessential to the invention and which are described as examples.Structure and acts described herein are replaceable by equivalents whichperform the same function, even if the structure or acts are different,as known in the art. Therefore, the scope of the invention is limitedonly by the elements and limitations as used in the claims.

1. A method of operating a processor pool having a given maximalprocessing power, in handling mobile data connections, comprising:connecting a plurality of mobile data connections, which may require upto a total peak processing power greater than the given maximalprocessing power of the processor pool, to the processor pool; assigninga data connection to a first processor of the processor pool; processinga plurality of first data packets transmitted on the assigned dataconnection, by a first processor of the processor pool; transferring thehandling of the assigned data connection to a second processor of theprocessor pool, after processing the plurality of first data packets, bythe first processor; and processing a plurality of second data packetstransmitted on the assigned data connection, by the second processor ofthe processor pool after the transfer, wherein after the transfer of thehandling to the second processor, data packets of the connection are nothandled again by the first processor, and wherein connecting a pluralityof mobile data connections comprises connecting a plurality of mobiledata connections which may require up to a total peak processing powerat least five times greater than the given maximal processing power ofthe processor pool.
 2. A method according to claim 1, wherein connectinga plurality of mobile data connections comprises assigning eachconnection a processor to handle the data of the connection.
 3. A methodaccording to claim 1, wherein transferring the handling of the assigneddata connection to a second processor comprises transferring while theconnection is carrying data.
 4. A method according to claim 3, whereintransferring the handling of the assigned data connection to a secondprocessor comprises transferring substantially immediately after data ofthe connection is handled.
 5. A method according to claim 3, comprisingprocessing the data of the connection substantially immediately afterthe connection is transferred.
 6. A method according to claim 1, whereintransferring the handling of the assigned data connection to a secondprocessor comprises transferring the connection, while the connection isidle.
 7. A method according to claim 1, comprising keeping track of theprocessing load on each of the processors and transferring the handlingof the connection from the first processor to the second processor,after handling a plurality of data packets, responsive to the relativeloads on the first and second processors.
 8. A method according to claim7, wherein keeping track of the processing load comprises keeping trackof the amount of data waiting, in an input buffer, for handling by theprocessor.
 9. A method according to claim 7, wherein keeping track ofthe processing load of the processors comprises receiving indicationsfrom the processors.
 10. A method according to claim 1, whereinconnecting a plurality of mobile data connections comprises connecting aplurality of mobile data connections which have the same peak processingpower requirement level.
 11. A method according to claim 1, whereinconnecting the plurality of data connections comprises connecting aplurality of data connections which have different peak processing powerrequirement levels.
 12. A method according to claim 1, whereinprocessing data transmitted on at least one of the connected dataconnections comprises compressing signals transmitted on the at leastone of the data connections.
 13. A method according to claim 1, whereinprocessing data transmitted on at least one of the connected dataconnections comprises decompressing signals transmitted on the at leastone of the data connections.
 14. A method according to claim 1, whereinprocessing data transmitted on at least one of the connected dataconnections comprises processing by at least one processor which handlesdata of a plurality of connections.
 15. A method according to claim 1,comprising erasing a state record of connections which did not carrydata for over a predetermined period.
 16. A method according to claim 1,comprising disconnecting connections which did not carry data for over apredetermined period.
 17. A method according to claim 1, whereinconnecting the plurality of mobile data connections comprises connectinggeneral purpose radio service (GPRS) connections.
 18. A method accordingto claim 1, wherein assigning a data connection to the first processorcomprises assigning at least four connections to the first processor.19. A method according to claim 1, wherein each data packet is handledby only one of the processors.
 20. A method of operating a processorpool having a given maximal processing power, in handling mobile dataconnections, comprising: connecting a plurality of mobile dataconnections, which may require up to a total peak processing powergreater than the given maximal processing power of the processor pool,to the processor pool; assigning a data connection to a first processorof the processor pool; processing a plurality of first data packetstransmitted on the assigned data connection, by a first processor of theprocessor pool; transferring the handling of the assigned dataconnection to a second processor of the processor pool, after processingthe plurality of first data packets, by the first processor; andprocessing a plurality of second data packets transmitted on theassigned data connection, by the second processor of the processor pool,after the transfer, wherein after the transfer of the handling to thesecond processor, data packets of the connection are not handled againby the first processor, and wherein processing data transmitted on atleast one of the connected data connections comprises compressing anddecompressing signals transmitted on a first group of data connectionsand only compressing signals on a second group of data connections. 21.A method of servicing a mobile data connection by a processor poolincluding a plurality of processors, comprising: compressing anddecompressing signals transmitted on a first group of data connectionsand only compressing signals on a second group of data connections;handling a first plurality of data packets of a specific mobile dataconnection by a first processor of the processor pool: transferring thehandling of the specific data connection to a second processor of thepool while the data connection is in force, responsive to an increase inthe processing power required by a data connection handled by the firstprocessor, after processing the first plurality of data packets, by thefirst processor; and handling by a second plurality of data packets ofthe specific mobile data connection by the second processor whereinafter the transfer of the handling to the second processor, data packetsof the connection are not handled again by the first processor.
 22. Amethod according to claim 21, wherein transferring the handling of thedata connection is performed responsive to an increase in the processingpower required for handling the data connection.
 23. A method accordingto claim 21, wherein transferring the handling of the data connection isperformed responsive to an increase in the processing power required bya different data connection serviced by the first processor.
 24. Amethod according to claim 21, wherein transferring the handling of thedata comprises transferring the connection while data is being receivedon the connection.
 25. A method according to claim 21, whereintransferring the handling of the data comprises transferring theconnection while the connection is idle.
 26. A method according to claim21, wherein handling data packets of the Specific mobile data connectioncomprises compressing and decompressing data transmitted on the Specificmobile data connection.
 27. A processor pool for servicing mobile dataconnections, comprising: a processor pool having a maximal processingpower; and a scheduler adapted to connect the processor pool to aplurality of mobile data connections that may require up to a total peakprocessing power, which is at least five times greater than the maximalprocessing power of the processor pool, wherein the scheduler is adaptedto transfer the handling of a data connection from a first processor,that already began handling data of the connection, to a secondprocessor, after a plurality of data packets of the data connection wereprocessed by the first processor, if the first processor has a largebackup of accumulated data for processing relative to the secondprocessor, wherein after the transfer of the handling to the secondprocessor, the scheduler does not transfer handling of the data packetsof the connection again to the first processor.
 28. A processor poolaccording to claim 27, wherein the processor pool comprises a pluralityof processors.
 29. A processor pool according to claim 28, comprising acommon memory which includes a record for each of the data connectionsserviced by the processor pool.
 30. A processor pool according to claim29, wherein the common memory is accessible by all the processors of theprocessor pool.
 31. A processor pool according to claim 28, whereinconnections of a first type are connected to a processor from a firstgroup of the processors and connections of a second type are connectedto a processor from a second group of the processors, different from thefirst group.
 32. A processor pool according to claim 31, wherein thefirst and second groups do not include common processors.
 33. Aprocessor pool according to claim 31, wherein the first and secondgroups include at least one processor.
 34. A processor pool according toclaim 27, wherein the scheduler is adapted to transfer the handling ofthe data connection from the first processor to the second processor,while the connection is transferring data.
 35. A processor poolaccording to claim 27, wherein each mobile data connection is assigned abuffer of a size sufficient to store data received at the maximal rateof the connection for at least 10 seconds.
 36. A processor poolaccording to claim 35, wherein at least two of the connections havebuffers of different sizes.
 37. A processor pool according to claim 36,wherein the size of the buffer of each connection is chosen responsiveto the QoS of the connection.